#include "SDL.h"

const int TAILLE_SPRITE=32;

void sdljeuInit(SDLJEU *pSdlJeu)
{

    JEU *jeu;
    TTF_Init();

	jeu = &(pSdlJeu->jeu);
	jeInit_Jeu(jeu);


    assert(  SDL_Init( SDL_INIT_EVERYTHING )!= -1 );

	pSdlJeu->ecran = SDL_SetVideoMode( 1300, 688, 32, SDL_SWSURFACE );

	assert( pSdlJeu->ecran!=NULL);

	SDL_WM_SetCaption( "Facopoly", NULL );

    pSdlJeu->surface_Menu = IMG_Load("data/Menu.jpg");
	if (pSdlJeu->surface_Menu==NULL)
		pSdlJeu->surface_Menu = IMG_Load("data/Menu.jpg");

	assert( pSdlJeu->surface_Menu!=NULL);

    pSdlJeu->surface_MenuJoueur = IMG_Load("data/MenuJoueur.jpg");
	if (pSdlJeu->surface_MenuJoueur==NULL)
		pSdlJeu->surface_MenuJoueur = IMG_Load("data/MenuJoueur.jpg");

	assert( pSdlJeu->surface_MenuJoueur!=NULL);

    pSdlJeu->surface_PlateauFinal = IMG_Load("data/PlateauFinal.jpg");
	if (pSdlJeu->surface_PlateauFinal==NULL)
		pSdlJeu->surface_PlateauFinal = IMG_Load("data/PlateauFinal.jpg");

	assert( pSdlJeu->surface_PlateauFinal!=NULL);


    pSdlJeu->surface_LogoFacopoly = IMG_Load("data/LogoFacopoly.jpg");
	if (pSdlJeu->surface_LogoFacopoly==NULL)
		pSdlJeu->surface_LogoFacopoly = IMG_Load("data/LogoFacopoly.jpg");

	assert( pSdlJeu->surface_LogoFacopoly!=NULL);


    pSdlJeu->surface_Mcar1 = IMG_Load("data/Mcar1.jpg");
	if (pSdlJeu->surface_Mcar1==NULL)
		pSdlJeu->surface_Mcar1 = IMG_Load("data/Mcar1.jpg");

	assert( pSdlJeu->surface_Mcar1!=NULL);

    pSdlJeu->surface_Mcar2 = IMG_Load("data/Mcar2.jpg");
	if (pSdlJeu->surface_Mcar2==NULL)
		pSdlJeu->surface_Mcar2 = IMG_Load("data/Mcar2.jpg");

	assert( pSdlJeu->surface_Mcar2!=NULL);

    pSdlJeu->surface_Mcar3 = IMG_Load("data/Mcar3.jpg");
	if (pSdlJeu->surface_Mcar3==NULL)
		pSdlJeu->surface_Mcar3 = IMG_Load("data/Mcar3.jpg");

	assert( pSdlJeu->surface_Mcar3!=NULL);

    pSdlJeu->surface_Mcar4 = IMG_Load("data/Mcar4.jpg");
	if (pSdlJeu->surface_Mcar4==NULL)
		pSdlJeu->surface_Mcar4 = IMG_Load("data/Mcar4.jpg");

	assert( pSdlJeu->surface_Mcar4!=NULL);

    pSdlJeu->surface_Mcar5 = IMG_Load("data/Mcar5.jpg");
	if (pSdlJeu->surface_Mcar5==NULL)
		pSdlJeu->surface_Mcar5 = IMG_Load("data/Mcar5.jpg");

	assert( pSdlJeu->surface_Mcar5!=NULL);

    pSdlJeu->surface_Mcar6 = IMG_Load("data/Mcar6.jpg");
	if (pSdlJeu->surface_Mcar6==NULL)
		pSdlJeu->surface_Mcar6 = IMG_Load("data/Mcar6.jpg");

	assert( pSdlJeu->surface_Mcar6!=NULL);

    pSdlJeu->surface_Mcar7 = IMG_Load("data/Mcar7.jpg");
	if (pSdlJeu->surface_Mcar7==NULL)
		pSdlJeu->surface_Mcar7 = IMG_Load("data/Mcar7.jpg");

	assert( pSdlJeu->surface_Mcar7!=NULL);

    pSdlJeu->surface_Mcar8 = IMG_Load("data/Mcar8.jpg");
	if (pSdlJeu->surface_Mcar8==NULL)
		pSdlJeu->surface_Mcar8 = IMG_Load("data/Mcar8.jpg");

	assert( pSdlJeu->surface_Mcar8!=NULL);

    pSdlJeu->surface_Mcar9 = IMG_Load("data/Mcar9.jpg");
	if (pSdlJeu->surface_Mcar9==NULL)
		pSdlJeu->surface_Mcar9 = IMG_Load("data/Mcar9.jpg");

	assert( pSdlJeu->surface_Mcar9!=NULL);

    pSdlJeu->surface_Mcar10 = IMG_Load("data/Mcar10.jpg");
	if (pSdlJeu->surface_Mcar10==NULL)
		pSdlJeu->surface_Mcar10 = IMG_Load("data/Mcar10.jpg");

	assert( pSdlJeu->surface_Mcar10!=NULL);

    pSdlJeu->surface_Mcar11 = IMG_Load("data/Mcar11.jpg");
	if (pSdlJeu->surface_Mcar11==NULL)
		pSdlJeu->surface_Mcar11 = IMG_Load("data/Mcar11.jpg");

	assert( pSdlJeu->surface_Mcar11!=NULL);

    pSdlJeu->surface_Mcar12 = IMG_Load("data/Mcar12.jpg");
	if (pSdlJeu->surface_Mcar12==NULL)
		pSdlJeu->surface_Mcar12 = IMG_Load("data/Mcar12.jpg");

	assert( pSdlJeu->surface_Mcar12!=NULL);

    pSdlJeu->surface_RPcar1 = IMG_Load("data/RPcar1.jpg");
	if (pSdlJeu->surface_RPcar1==NULL)
		pSdlJeu->surface_RPcar1 = IMG_Load("data/RPcar1.jpg");

	assert( pSdlJeu->surface_RPcar1!=NULL);

    pSdlJeu->surface_RPcar2 = IMG_Load("data/RPcar2.jpg");
	if (pSdlJeu->surface_RPcar2==NULL)
		pSdlJeu->surface_RPcar2 = IMG_Load("data/RPcar2.jpg");

	assert( pSdlJeu->surface_RPcar2!=NULL);

    pSdlJeu->surface_RPcar3 = IMG_Load("data/RPcar3.jpg");
	if (pSdlJeu->surface_RPcar3==NULL)
		pSdlJeu->surface_RPcar3 = IMG_Load("data/RPcar3.jpg");

	assert( pSdlJeu->surface_RPcar3!=NULL);

    pSdlJeu->surface_RPcar4 = IMG_Load("data/RPcar4.jpg");
	if (pSdlJeu->surface_RPcar4==NULL)
		pSdlJeu->surface_RPcar4 = IMG_Load("data/RPcar4.jpg");

	assert( pSdlJeu->surface_RPcar4!=NULL);

    pSdlJeu->surface_RPcar5 = IMG_Load("data/RPcar5.jpg");
	if (pSdlJeu->surface_RPcar5==NULL)
		pSdlJeu->surface_RPcar5 = IMG_Load("data/RPcar5.jpg");

	assert( pSdlJeu->surface_RPcar5!=NULL);

    pSdlJeu->surface_RPcar6 = IMG_Load("data/RPcar6.jpg");
	if (pSdlJeu->surface_RPcar6==NULL)
		pSdlJeu->surface_RPcar6 = IMG_Load("data/RPcar6.jpg");

	assert( pSdlJeu->surface_RPcar6!=NULL);

    pSdlJeu->surface_RPcar7 = IMG_Load("data/RPcar7.jpg");
	if (pSdlJeu->surface_RPcar7==NULL)
		pSdlJeu->surface_RPcar7 = IMG_Load("data/RPcar7.jpg");

	assert( pSdlJeu->surface_RPcar7!=NULL);

    pSdlJeu->surface_RPcar8 = IMG_Load("data/RPcar8.jpg");
	if (pSdlJeu->surface_RPcar8==NULL)
		pSdlJeu->surface_RPcar8 = IMG_Load("data/Mcar8.jpg");

	assert( pSdlJeu->surface_RPcar8!=NULL);

    pSdlJeu->surface_RPcar9 = IMG_Load("data/RPcar9.jpg");
	if (pSdlJeu->surface_RPcar9==NULL)
		pSdlJeu->surface_RPcar9 = IMG_Load("data/RPcar9.jpg");

	assert( pSdlJeu->surface_RPcar9!=NULL);

    pSdlJeu->surface_RPcar10 = IMG_Load("data/RPcar10.jpg");
	if (pSdlJeu->surface_RPcar10==NULL)
		pSdlJeu->surface_RPcar10 = IMG_Load("data/RPcar10.jpg");

	assert( pSdlJeu->surface_RPcar10!=NULL);

    pSdlJeu->surface_RPcar11 = IMG_Load("data/RPcar11.jpg");
	if (pSdlJeu->surface_RPcar11==NULL)
		pSdlJeu->surface_RPcar11 = IMG_Load("data/RPcar11.jpg");

	assert( pSdlJeu->surface_RPcar11!=NULL);

    pSdlJeu->surface_RPcar12 = IMG_Load("data/RPcar12.jpg");
	if (pSdlJeu->surface_RPcar12==NULL)
		pSdlJeu->surface_RPcar12 = IMG_Load("data/RPcar12.jpg");

	assert( pSdlJeu->surface_RPcar12!=NULL);

	pSdlJeu->surface_regle1 = IMG_Load("data/Règle1.jpg");
	if (pSdlJeu->surface_regle1==NULL)
		pSdlJeu->surface_regle1 = IMG_Load("data/Règle1.jpg");

	assert( pSdlJeu->surface_regle1!=NULL);

	pSdlJeu->surface_regle2 = IMG_Load("data/Règle2.jpg");
	if (pSdlJeu->surface_regle2==NULL)
		pSdlJeu->surface_regle2 = IMG_Load("data/Règle2.jpg");

	assert( pSdlJeu->surface_regle2!=NULL);

	pSdlJeu->surface_regle3 = IMG_Load("data/Règle3.jpg");
	if (pSdlJeu->surface_regle3==NULL)
		pSdlJeu->surface_regle3 = IMG_Load("data/Règle3.jpg");

	assert( pSdlJeu->surface_regle3!=NULL);

	pSdlJeu->surface_regle4 = IMG_Load("data/Règle4.jpg");
	if (pSdlJeu->surface_regle4==NULL)
		pSdlJeu->surface_regle4 = IMG_Load("data/Règle4.jpg");

	assert( pSdlJeu->surface_regle4!=NULL);

	pSdlJeu->surface_regle5 = IMG_Load("data/Règle5.jpg");
	if (pSdlJeu->surface_regle5==NULL)
		pSdlJeu->surface_regle5 = IMG_Load("data/Règle5.jpg");

	assert( pSdlJeu->surface_regle5!=NULL);

	pSdlJeu->surface_regle6 = IMG_Load("data/Règle6.jpg");
	if (pSdlJeu->surface_regle6==NULL)
		pSdlJeu->surface_regle6 = IMG_Load("data/Règle6.jpg");

	assert( pSdlJeu->surface_regle6!=NULL);

	pSdlJeu->surface_bus = IMG_Load("data/bus.jpg");
	if (pSdlJeu->surface_bus==NULL)
		pSdlJeu->surface_bus = IMG_Load("data/bus.jpg");

	assert( pSdlJeu->surface_bus!=NULL);

	pSdlJeu->surface_tram = IMG_Load("data/tramway.jpg");
	if (pSdlJeu->surface_tram==NULL)
		pSdlJeu->surface_tram= IMG_Load("data/tramway.jpg");

	assert( pSdlJeu->surface_tram!=NULL);

	pSdlJeu->surface_velo = IMG_Load("data/velo.jpg");
	if (pSdlJeu->surface_velo==NULL)
		pSdlJeu->surface_velo = IMG_Load("data/velo.jpg");

	assert( pSdlJeu->surface_velo!=NULL);

	pSdlJeu->surface_voiture = IMG_Load("data/voiture.jpg");
	if (pSdlJeu->surface_voiture==NULL)
		pSdlJeu->surface_voiture = IMG_Load("data/voiture.jpg");

	assert( pSdlJeu->surface_voiture!=NULL);
}

void sdlAff_Carte(SDLJEU *pSdlJeu)
{
    SDL_Rect carte, carte2;

	carte.x = 0;
	carte.y = 0;
	carte.h = 200;
	carte.w = 400;

	carte2.x = 10;
	carte2.y = 10;
	carte2.h = 200;
	carte2.w = 400;

	if(pSdlJeu->jeu.resmail == 1)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar1,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 2)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar2,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 3)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar3,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 4)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar4,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 5)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar5,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 6)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar6,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 7)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar7,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 8)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar8,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 9)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar9,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 10)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar10,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 11)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar11,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resmail == 12)
    {
        SDL_BlitSurface(pSdlJeu->surface_Mcar12,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 13)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar1,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 14)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar2,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 15)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar3,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 16)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar4,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 17)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar5,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 18)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar6,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 19)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar7,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 20)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar8,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 21)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar10,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 22)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar11,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 23)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar12,&carte,pSdlJeu->ecran,&carte2);
    }
    if(pSdlJeu->jeu.resped == 24)
    {
        SDL_BlitSurface(pSdlJeu->surface_RPcar9,&carte,pSdlJeu->ecran,&carte2);
    }
}

void sdlAff_Bus(SDLJEU *pSdlJeu)
{
    SDL_Rect bus, bus2;

	bus.x = 0;
	bus.y = 0;
	bus.h = 86;
	bus.w = 318;

	bus2.x= pSdlJeu->jeu.pi->x_depBus;
	bus2.y = pSdlJeu->jeu.pi->y_depBus;
	bus2.h = 86;
	bus2.w = 318;

	SDL_BlitSurface(pSdlJeu->surface_bus,&bus,pSdlJeu->ecran,&bus2);
}

void sdlAff_Tram(SDLJEU *pSdlJeu)
{
    SDL_Rect tram, tram2;

	tram.x = 0;
	tram.y = 0;
	tram.h = 105;
	tram.w = 200;

	tram2.x = pSdlJeu->jeu.pi->x_depTram;
	tram2.y = pSdlJeu->jeu.pi->y_depTram;
	tram2.h = 105;
	tram2.w = 200;

	SDL_BlitSurface(pSdlJeu->surface_tram,&tram,pSdlJeu->ecran,&tram2);
}

void sdlAff_Velo(SDLJEU *pSdlJeu)
{
    SDL_Rect velo, velo2;

	velo.x = 0;
	velo.y = 0;
	velo.h = 114;
	velo.w = 200;

	velo2.x = pSdlJeu->jeu.pi->x_depVelo;
	velo2.y = pSdlJeu->jeu.pi->y_depVelo;
	velo2.h = 114;
	velo2.w = 200;

	SDL_BlitSurface(pSdlJeu->surface_velo,&velo,pSdlJeu->ecran,&velo2);
}

void sdlAff_Voiture(SDLJEU *pSdlJeu)
{
    SDL_Rect voiture, voiture2;

	voiture.x = 0;
	voiture.y = 0;
	voiture.h = 74;
	voiture.w = 154;

	voiture2.x = pSdlJeu->jeu.pi->x_depVoiture;
	voiture2.y = pSdlJeu->jeu.pi->y_depVoiture;
	voiture2.h = 74;
	voiture2.w = 154;

	SDL_BlitSurface(pSdlJeu->surface_voiture,&voiture,pSdlJeu->ecran,&voiture2);
}

void sdlAff_De(SDLJEU *pSdlJeu)
{
    char tab_de[4];
    SDL_Rect position;
    SDL_Color couleurNoire = {0, 0, 0};
    TTF_Font *police = TTF_OpenFont("data/POLICE.TTF",50);

    sprintf(tab_de,"%d",pSdlJeu->jeu.d);

    pSdlJeu->de = TTF_RenderText_Blended(police, tab_de, couleurNoire);

    position.x = 1174;
    position.y = 13;

    SDL_BlitSurface(pSdlJeu->de,NULL,pSdlJeu->ecran,&position);
}

void sdlAff_Score(SDLJEU *pSdlJeu)
{
    int score1, score2, score3, score4;
    char tab_score1[4];
    char tab_score2[4];
    char tab_score3[4];
    char tab_score4[4];
    SDL_Rect position;
    SDL_Rect position2;
    SDL_Rect position3;
    SDL_Rect position4;
    SDL_Color couleurNoire = {0, 0, 0};
    TTF_Font *police = TTF_OpenFont("data/POLICE.TTF",50);

    score1 = 100;
    score2 = 100;
    score3 = 100;
    score4 = 100;

    sprintf(tab_score1,"%d",score1);
    sprintf(tab_score2,"%d",score2);
    sprintf(tab_score3,"%d",score3);
    sprintf(tab_score4,"%d",score4);

    pSdlJeu->score1 = TTF_RenderText_Blended(police, tab_score1, couleurNoire);
    pSdlJeu->score2 = TTF_RenderText_Blended(police, tab_score2, couleurNoire);
    pSdlJeu->score3 = TTF_RenderText_Blended(police, tab_score3, couleurNoire);
    pSdlJeu->score4 = TTF_RenderText_Blended(police, tab_score4, couleurNoire);

    position.x = 500;
    position.y = 10;

    position2.x = 1173;
    position2.y = 250;

    position3.x = 500;
    position3.y = 630;

    position4.x = 39;
    position4.y = 250;

    SDL_BlitSurface(pSdlJeu->score1,NULL,pSdlJeu->ecran,&position);
    SDL_BlitSurface(pSdlJeu->score2,NULL,pSdlJeu->ecran,&position2);
    SDL_BlitSurface(pSdlJeu->score3,NULL,pSdlJeu->ecran,&position3);
    SDL_BlitSurface(pSdlJeu->score4,NULL,pSdlJeu->ecran,&position4);
}

void sdljeuAff(SDLJEU *pSdlJeu)
{
    SDL_Rect position;
    SDL_FillRect( pSdlJeu->ecran, &pSdlJeu->ecran->clip_rect, SDL_MapRGB( pSdlJeu->ecran->format, 0xFF, 0xFF, 0xFF ) );

	position.x = 0;
	position.y = 0;
	position.h = 688;
	position.w = 1300;

    if(pSdlJeu->jeu.avancement == 0)
    {
        SDL_BlitSurface(pSdlJeu->surface_Menu,&position,pSdlJeu->ecran,&position);
    }
    else if(pSdlJeu->jeu.avancement == 10)
    {
        SDL_BlitSurface(pSdlJeu->surface_regle1,&position,pSdlJeu->ecran,&position);

    }
    else if(pSdlJeu->jeu.avancement == 11)
    {
        SDL_BlitSurface(pSdlJeu->surface_regle2,&position,pSdlJeu->ecran,&position);

    }
    else if(pSdlJeu->jeu.avancement == 12)
    {
        SDL_BlitSurface(pSdlJeu->surface_regle3,&position,pSdlJeu->ecran,&position);

    }
    else if(pSdlJeu->jeu.avancement == 13)
    {
        SDL_BlitSurface(pSdlJeu->surface_regle4,&position,pSdlJeu->ecran,&position);

    }
    else if(pSdlJeu->jeu.avancement == 14)
    {
        SDL_BlitSurface(pSdlJeu->surface_regle5,&position,pSdlJeu->ecran,&position);

    }
    else if(pSdlJeu->jeu.avancement == 15)
    {
        SDL_BlitSurface(pSdlJeu->surface_regle6,&position,pSdlJeu->ecran,&position);

    }
    else if(pSdlJeu->jeu.avancement == 2)
    {
        SDL_BlitSurface(pSdlJeu->surface_MenuJoueur,&position,pSdlJeu->ecran,&position);
    }
    else if(pSdlJeu->jeu.avancement == 3)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_Bus(pSdlJeu);
        sdlAff_Tram(pSdlJeu);
        sdlAff_Velo(pSdlJeu);
        sdlAff_Voiture(pSdlJeu);
        sdlAff_Score(pSdlJeu);

    }
   else if(pSdlJeu->jeu.avancement == 4)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_Bus(pSdlJeu);
        sdlAff_Tram(pSdlJeu);
        sdlAff_Velo(pSdlJeu);
        sdlAff_Voiture(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
    }
    else if(pSdlJeu->jeu.avancement == 5)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_Velo(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
        pSdlJeu->jeu.avancement = 3;
    }
    else if(pSdlJeu->jeu.avancement == 6)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_Tram(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
        pSdlJeu->jeu.avancement = 3;
    }
    else if(pSdlJeu->jeu.avancement == 7)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_Voiture(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
        pSdlJeu->jeu.avancement = 3;
    }
    else if(pSdlJeu->jeu.avancement == 8)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_Voiture(pSdlJeu);
        sdlAff_Score(pSdlJeu);
        sdlAff_De(pSdlJeu);
        pSdlJeu->jeu.avancement = 3;
    }
    else if(pSdlJeu->jeu.avancement == 9)
    {
        SDL_BlitSurface(pSdlJeu->surface_PlateauFinal,&position,pSdlJeu->ecran,&position);
        sdlAff_Carte(pSdlJeu);
    }

}

void sdljeuBoucle(SDLJEU *pSdlJeu)
{
	SDL_Event event;
	int continue_boucle = 1;
    int numcaseVelo=1;
    int numcaseVoiture=1;
    int numcaseTram=1;
    int numcaseBus=1;
    /* Horloges (en secondes)*/
    float horloge_courante, horloge_precedente;

    /* Intervalle de temps (en secondes) entre deux évolutions du jeu
    //! Changer la valeur pour ralentir ou accélérer le déplacement des fantomes*/
    float intervalle_horloge = 0.1f;

    int rafraichissement;

	sdljeuAff(pSdlJeu);
	assert( SDL_Flip( pSdlJeu->ecran )!=-1 );

    /* Récupère l'horloge actuelle et la convertit en secondes
    //! clock() retourne le nombre de tops horloge depuis le lancement du programme*/
    horloge_precedente = (float)clock()/(float)CLOCKS_PER_SEC;

	/* Tant que ce n'est pas la fin ...*/
	while ( continue_boucle == 1 )
	{
	    rafraichissement = 0;

	     /*Récupère l'horloge actuelle et la convertit en secondes*/
        horloge_courante = (float)clock()/(float)CLOCKS_PER_SEC;

        /* Si suffisamment de temps s'est écoulé depuis la dernière prise d'horloge*/
        if (horloge_courante-horloge_precedente>=intervalle_horloge)
        {
                rafraichissement = 1;
                horloge_precedente = horloge_courante;
        }

		/* tant qu'il y a des evenements à traiter : cette boucle n'est pas bloquante*/
		while ( SDL_PollEvent( &event ) )
		{
			/* Si l'utilisateur a cliqué sur la croix de fermeture*/
			if ( event.type == SDL_QUIT )
				continue_boucle = 0;

			if(pSdlJeu->jeu.avancement == 0)
            {
                /* Si l'utilisateur a appuyé sur une touche*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 403)&&(event.button.x < 897))
                        {
                            if((event.button.y > 242)&&(event.button.y < 317))
                            {
                                pSdlJeu->jeu.avancement = 2;
                                rafraichissement = 1;
                            }
                            else if((event.button.x > 403)&&(event.button.x < 897))
                            {
                                if((event.button.y > 349)&&(event.button.y < 422))
                                {
                                    pSdlJeu->jeu.avancement = 10;
                                    rafraichissement = 1;
                                }
                            }
                        }
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement ==10)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 11;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==11)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 12;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==12)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 13;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==13)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 14;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==14)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 15;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
             else if (pSdlJeu->jeu.avancement ==15)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 1)&&(event.button.x < 1300))
                        {
                            if((event.button.y > 1)&&(event.button.y < 688))
                            {
                                pSdlJeu->jeu.avancement = 0;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement ==2)
            {
                /* S'occupper de rentrer les noms des joueurs...
                //! Vérifier que minimum deux cases sont remplies*/
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                        if((event.button.x > 854)&&(event.button.x < 1272))
                        {
                            if((event.button.y > 280)&&(event.button.y < 437))
                            {
                                pSdlJeu->jeu.avancement = 3;
                                rafraichissement = 1;
                            }
                        }
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement ==3)
            {
                if(((pSdlJeu->jeu.pi->x_depVoiture==405) && (pSdlJeu->jeu.pi->y_depVoiture==90))||((pSdlJeu->jeu.pi->x_depTram==405) &&(pSdlJeu->jeu.pi->y_depTram==90))||((pSdlJeu->jeu.pi->x_depBus==405) &&(pSdlJeu->jeu.pi->y_depBus==90))||((pSdlJeu->jeu.pi->x_depVelo==405) &&(pSdlJeu->jeu.pi->y_depVelo==90))||
                (((pSdlJeu->jeu.pi->x_depVoiture==810) && (pSdlJeu->jeu.pi->y_depVoiture==90))||((pSdlJeu->jeu.pi->x_depTram==810) &&(pSdlJeu->jeu.pi->y_depTram==90))||((pSdlJeu->jeu.pi->x_depBus==810) &&(pSdlJeu->jeu.pi->y_depBus==90))||((pSdlJeu->jeu.pi->x_depVelo==810) &&(pSdlJeu->jeu.pi->y_depVelo==90)))||
                (((pSdlJeu->jeu.pi->x_depVoiture==1100) && (pSdlJeu->jeu.pi->y_depVoiture==435))||((pSdlJeu->jeu.pi->x_depTram==1100) &&(pSdlJeu->jeu.pi->y_depTram==435))||((pSdlJeu->jeu.pi->x_depBus==1100) &&(pSdlJeu->jeu.pi->y_depBus==435))||((pSdlJeu->jeu.pi->x_depVelo==1100) &&(pSdlJeu->jeu.pi->y_depVelo==435)))||
                (((pSdlJeu->jeu.pi->x_depVoiture==895) && (pSdlJeu->jeu.pi->y_depVoiture==600))||((pSdlJeu->jeu.pi->x_depTram==895) &&(pSdlJeu->jeu.pi->y_depTram==600))||((pSdlJeu->jeu.pi->x_depBus==895) &&(pSdlJeu->jeu.pi->y_depBus==600))||((pSdlJeu->jeu.pi->x_depVelo==895) &&(pSdlJeu->jeu.pi->y_depVelo==600)))||
                (((pSdlJeu->jeu.pi->x_depVoiture==200) && (pSdlJeu->jeu.pi->y_depVoiture==435))||((pSdlJeu->jeu.pi->x_depTram==200) &&(pSdlJeu->jeu.pi->y_depTram==435))||((pSdlJeu->jeu.pi->x_depBus==200) &&(pSdlJeu->jeu.pi->y_depBus==435))||((pSdlJeu->jeu.pi->x_depVelo==200) &&(pSdlJeu->jeu.pi->y_depVelo==435)))||
                (((pSdlJeu->jeu.pi->x_depVoiture==200) && (pSdlJeu->jeu.pi->y_depVoiture==300))||((pSdlJeu->jeu.pi->x_depTram==200) &&(pSdlJeu->jeu.pi->y_depTram==300))))
                {
                    if ( event.type == SDL_MOUSEBUTTONDOWN )
                    {
                        if(event.button.button == SDL_BUTTON_LEFT)
                        {
                            if((event.button.x > 295)&&(event.button.x < 523))
                            {
                                if((event.button.y > 147)&&(event.button.y < 325))
                                {
                                    pSdlJeu->jeu.avancement = 9;
                                    jeTirage_Carte(&pSdlJeu->jeu);
                                    rafraichissement = 1;
                                }
                            }
                        }
                    }
                }
                else if ( event.type == SDL_MOUSEBUTTONDOWN )
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                       if((event.button.x > 306)&&(event.button.x < 382))
                       {
                           if((event.button.y > 465)&&(event.button.y < 526))
                           {
                               pSdlJeu->jeu.avancement = 4;
                               jeRecup_Des(&pSdlJeu->jeu);
                               rafraichissement = 1;
                           }
                       }
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement ==4)
            {
                if ( event.type == SDL_KEYDOWN )
                {
                    switch ( event.key.keysym.sym )
                    {
                        case SDLK_a:
                        pSdlJeu->jeu.pi->numcase=numcaseVelo;
                        jeDeplacement_PionVelo(&pSdlJeu->jeu);
                        pSdlJeu->jeu.avancement = 5;
                        rafraichissement = 1;
                        numcaseVelo=numcaseVelo+pSdlJeu->jeu.d;
                        break;
                        case SDLK_z:
                        pSdlJeu->jeu.pi->numcase=numcaseTram;
                        jeDeplacement_PionTram(&pSdlJeu->jeu);
                        pSdlJeu->jeu.avancement = 6;
                        rafraichissement = 1;
                        numcaseTram=numcaseTram+pSdlJeu->jeu.d;
                        break;
                        case SDLK_e:
                         pSdlJeu->jeu.pi->numcase=numcaseVoiture;
                        jeDeplacement_PionVoiture(&pSdlJeu->jeu);
                        pSdlJeu->jeu.avancement = 7;
                        rafraichissement = 1;
                        numcaseVoiture=numcaseVoiture+pSdlJeu->jeu.d;
                        break;
                        case SDLK_r:
                         pSdlJeu->jeu.pi->numcase=numcaseBus;
                        jeDeplacement_PionBus(&pSdlJeu->jeu);
                        pSdlJeu->jeu.avancement = 8;
                        rafraichissement = 1;
                        numcaseBus=numcaseBus+pSdlJeu->jeu.d;
                        break;
                        default: break;
                    }
                }
            }
            else if (pSdlJeu->jeu.avancement == 9)
            {
                if ( event.type == SDL_MOUSEBUTTONDOWN )
                    {
                        if(event.button.button == SDL_BUTTON_LEFT)
                        {
                            if((event.button.x > 771)&&(event.button.x < 999))
                            {
                                if((event.button.y > 351)&&(event.button.y < 728))
                                {
                                    pSdlJeu->jeu.avancement = 3;
                                    rafraichissement = 1;
                                }
                            }
                        }
                    }
            }
		}
        if (rafraichissement==1)
        {
            /* on affiche le jeu sur le buffer caché */
            sdljeuAff(pSdlJeu);

            /* on permute les deux buffers (cette fonction ne doit se faire qu'une seule fois dans a boucle) */
            SDL_Flip( pSdlJeu->ecran );
        }
    }
}
